<?php //2017-06-28 

/**
*抽象类: 关键字abstract  抽象方法名后面不用加{}  抽象父类里面允许有普通方法  子类必须继承父类抽象方法
*/ //abstract抽象
abstract class Father
{
	abstract function run();  
	abstract function zuo();
	public function putong()
	{
		echo "这是父类中的普通方法，子类可以不继承";
	}
}

/**
* 子类  
*/
class Son extends Father
{
	public function shan()
	{
		echo "闪了";
	}
	public function run()
	{
		echo "run";
	}
	public function zuo()
	{
		echo "zuo";
	}
}

$o = new Son();


//接口是通过 interface 关键字来定义的  接口名后面不用加{}
//interface 接合，连接
interface Shui {
	public function liu();
}

interface Huo {
	public function shao();
}


//要实现一个接口，使用 implements 操作符   可以接多个接口
/**
* 
*///implements手段,实现
class Yuansu implements Shui,Huo
{
	public function liu($value='')
	{
		echo "水流";
	}
	public function shao($value='')
	{
		echo "火烧";
	}
}

$o  = new Yuansu();



// 接口与抽象类的区别：
// 1.接口只能用implements实现 抽象类用extends继承实现

// 2. 接口中不可以有成员方法，抽象类可以有成员方法

// 3.接口没有构造函数，抽象类可以定义构造函数

// 4.接口方法都是public 抽象类方法可以用protected private public来修饰 

// 5.一个类可以实现多个接口，但只能继承一个抽象类











 ?>